Sending a simple GET request:#
<?php
$request = new http\Client\Request("GET",
    "http://localhost",
    ["User-Agent"=>"My Client/0.1"]
);
$request->setOptions(["timeout"=>1]);
$client = new http\Client;
$client->enqueue($request)->send();
$response = $client->getResponse();
printf("%s returned '%s' (%d)\n",
    $response->getTransferInfo("effective_url"),
    $response->getInfo(),
    $response->getResponseCode()
);
?>
Yields:#
http://localhost/ returned 'HTTP/1.1 200 OK' (200)
<?php
$request = new http\Client\Request("POST",
    "http://localhost/post.php",
    ["Content-Type" => "application/x-www-form-urlencoded"]
);
$request->getBody()->append(new http\QueryString([
    "user" => "mike",
    "name" => "Michael Wallner"
]));
$client = new http\Client;
$client->setOptions(["ssl" => [
    "version" => http\Client\Curl\SSL_VERSION_TLSv1
]]);
$client->enqueue($request)->send();
$response = $client->getResponse($request);
printf("-> %s\n", $response->getInfo());
?>
Yields:#
-> HTTP/1.1 200 OK
<?php
$request = new http\Client\Request("POST",
    "http://localhost/post.php"
);
$request->getBody()->addForm([
    "user" => "mike",
    "name" => "Michael Wallner"
], [
    [
        "name" => "image",
        "type" => "image/jpeg",
        "file" => "image.jpg"
    ]
]);
$client = new http\Client;
$client->setOptions(["ssl" => [
    "version" => http\Client\Curl\SSL_VERSION_TLSv1
]]);
$client->enqueue($request)->send();
$response = $client->getResponse($request);
printf("-> %.2F kB\n @ %.2F Mbit",
    .001 * $response->getTransferInfo("size_upload"),
    .0000008 * $response->getTransferInfo("speed_upload")
);
?>
Yields:#
-> 15.98 kB @ 6.77 Mbit